/*
  Programa GEFE - Gestión de eventos lúdicos.
  Copyright (C) 2010  Antonio Ramírez Marti

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef NUEVOEVENTODIALOG_H
#define NUEVOEVENTODIALOG_H

#include <QDialog>
#include <QDate>
#include <QString>
#include <QStringList>

namespace Ui {
    class nuevoEventoDialog;
}

class nuevoEventoDialog : public QDialog {
    Q_OBJECT
    Q_PROPERTY (QDate inicio READ getFechaIni WRITE setFechaIni)
    Q_PROPERTY (QDate fin READ getFechaFin WRITE setFechaFin)
    Q_PROPERTY (bool archivoVisible READ isArchivoVisible WRITE setArchivoVisible)
    Q_PROPERTY (QString directorio READ getDirectorio WRITE setDirectorio)

public:
    nuevoEventoDialog(QWidget *parent = 0);
    ~nuevoEventoDialog();

    QDate getFechaIni() const;
    QDate getFechaFin() const;

    QString getDirectorio() const;

    bool isArchivoVisible() const;

signals:

    /*!
      Nuevo intervalo de fechas
      */

    void nuevasFechas(QDate inicio,QDate fin);

    /*!
      Nueva fecha de inicio
      */

    void nuevoInicio(QDate fecha);

    /*!
      Datos del evento
      */

    void nuevoEvento(QStringList datos);

public slots:

    void setFechaIni(QDate fecha);

    void setFechaFin(QDate fecha);

    void seleccionarDirectorio();

    void setDirectorio(QString directorio);

    void enviarNuevoEvento();

    void setArchivoVisible(bool estado);

private slots:

    /*!
      Filtra el nombre de evento para el nombre de archivo
      */

    void filtraNombreEvento(QString evento);

protected:
    void changeEvent(QEvent *e);

private:
    Ui::nuevoEventoDialog *ui;
    QDate fechaIni;
    QDate fechaFin;

    QString directorio;

    /*!
       Configura el diálogo
       */
    void setup();

    /*!
      Oculta la parte de dialogo que no queremos mostrar
      */

    void ocultaLineaArchivo();

    /*!
      Muestra la parte de dialogo que queremos mostrar
      */

    void muestraLineaArchivo();
};

#endif // NUEVOEVENTODIALOG_H
